1. Field of the Invention
This invention relates to a method and an apparatus for modulating or encoding digital data. In addition, this invention relates to a method and an apparatus for demodulating or decoding digital data. Furthermore, this invention relates to a recording medium loaded with modulation-resultant digital data.
2. Description of the Related Art
Some digital data recording or transmission includes a step of xe2x80x9cchannel codingxe2x80x9d which is also called xe2x80x9cmodulationxe2x80x9d. The channel coding is as follows. Each block (for example, each byte) of digital data to be recorded or transmitted is modulated into a code word. The resultant code words are serially connected so that the digital data are converted into a code-word sequence in the form of a bit stream. It is desirable that the code-word sequence to be recorded matches the characteristics of a related recording medium or a related transmission channel.
In the case of recording on an optical disc, it is good for recorded digital data to satisfy the following constraints: 1) a minimum zero-run-length constraint (that is, a minimum pit or land length constraint) due to optical transmission characteristics in recording and reading and to physical restrictions involved in pit formation, 2) a maximum zero-run-length constraint (that is, a maximum pit or land length constraint) for the facilitation of a clock-signal recovery, and 3) a constraint on low-frequency signal components for the sake of servo control.
Known modulation systems for digital signals to be recorded include an EFM (eight-to-fifteen modulation) system for compact discs (CDs) and an EFMPlus (eight-to-sixteen modulation) system for digital versatile discs (DVDs). The EFM and EFMPlus systems provide modulation-resultant digital signals which satisfy constraints such that a minimum zero-run-length and a maximum zero-run-length are equal to 3T and 11T respectively, where T denotes a channel bit period.
Specifically, the EFM system encodes every 8-bit block of digital data into a 14-channel-bit code word, and connects the resultant code words while inserting sets of 3 margin bits therebetween. Thus, the EFM system modulates the digital data into a margin-bit-added code-word sequence by conversion from 8 bits to 17 bits. The resultant code-word sequence is in the form of a bit stream. In addition, the resultant code-word sequence is designed to satisfy xe2x80x9cRLL(2, 10)xe2x80x9d which means run length limiting rules such that 2 to 10 successive channel bits of xe2x80x9c0xe2x80x9d should be between channel bits of xe2x80x9c1xe2x80x9d. Even at every connection between code words via margin bits, RLL(2, 10) is observed. Since RLL(2, 10) is satisfied, direct-current and low-frequency components of the resultant code-word sequence are suppressed.
The EFMPlus system encodes every 8-bit block of digital data into a 16-bit code word, and serially connects the resultant code words without inserting margin bits therebetween. Thus, the EFMPlus system converts the digital data into a code-word sequence without margin bits by conversion from 8 bits to 16 bits. The resultant code-word sequence is in the form of a bit stream. In addition, the resultant code-word sequence is designed to satisfy RLL(2, 10).
U.S. Pat. No. 6,297,753 B1 corresponding to Japanese patent application publication number P2000-286709A discloses a modulation system for encoding every xe2x80x9cpxe2x80x9d-bit block of digital data into a xe2x80x9cqxe2x80x9d-bit code word, serially connecting the resultant code words, and thereby converting the digital data into a code-word sequence in the form of a bit stream which observes run length limiting rules such that a minimum zero-run-length and a maximum zero-run-length are equal to 3T and 11T respectively. The modulation system in U.S. Pat. No. 6,297,753 B1 includes a plurality of encoding tables for converting xe2x80x9cpxe2x80x9d-bit input data words into xe2x80x9cqxe2x80x9d-bit output code words. Each of the encoding tables lists output code words and state-information pieces assigned to input data words. The state-information pieces are designed to select one among the encoding tables which will be accessed for the conversion of a next input data word. Furthermore, the group of encoding tables is designed so that the NRZI modulation results of output code words in specified encoding tables which are assigned to each predetermined input data word are opposite in parity or polarity (xe2x80x9codd-evenxe2x80x9d in the number of bits of xe2x80x9c1xe2x80x9d). This design of the encoding tables is utilized in performing DSV (digital sum value or digital sum variation) control of the output-code-word sequence.
In an example of the modulation system of U.S. Pat. No. 6,297,753 B1, the numbers xe2x80x9cpxe2x80x9d and xe2x80x9cqxe2x80x9d are equal to 8 and 15 respectively. Accordingly, the modulation system implements conversion from 8 bits to 15 bits for modulating digital data into a code-word sequence.
The documents SPIE, Vol. 4090, pages 275-282, which are written by W. Coene and E. Chuang, disclose xe2x80x9cEFMCC: A New Combi-Code for High Density Optical Recordingxe2x80x9d. According to the documents SPIE, EFMCC is a run-length-limited (RLL) channel code with EFM-like RLL constraints, RLL(2, 10), which is constructed by combining two codes, a main code and a substitution code. Both codes operate on a byte-by-byte basis. The substitution code has a special structure, i.e., for each byte, there are two possible channel words, which have opposite parity and the same next-state in the finite-state machine of the EFMCC code. The benefits are: guaranteed DC-control, 4% higher efficiency than EFMPlus, and simple byte-oriented look-ahead DC-control encoding.
Specifically, the Comb-Code implies a combination of two channel codes C1 and C2, which both operate on a byte-by-byte basis. Code C1 is called the main code, and maps a byte into a 15-bit channel word: its goal is to realize a high coding rate. Code C2 is called the substitution code, and maps a byte into one out of two possible 17-bit channel words: its goal is to realize a guaranteed DC-control (direct-current-control), at the cost of a lower rate. For each of the coding states of the underlying finite-state machine (FSM), both 17-bit channel words of the substitution code C2 have to satisfy two conditions: (i) both channel words have opposite parity and (ii) both channel words have the same next-state in the FSM. Every byte encoded with the substitution code C2 represents a DC-control point in the channel bit stream since the parity selection at C2 determines the polarity, and thus the contribution to the RDS (running digital sum) value, of the channel bit stream for the subsequent bytes all encoded with the main code C1, up to the next byte encoded with C2. Apart from the polarity, the channel bit stream for the bytes encoded with the main code C1 does not depend on the parity selection at the substitution code C2, i.e., the corresponding (d, k) sequences are identical.
The EFMPlus system uses conversion from 8 bits to 16 bits while the EFM system implements conversion from 8 bits to 17 bits. Therefore, the EFMPlus system is better in coding efficiency than the EFM system by about 6%.
The modulation system in U.S. Pat. No. 6,297,753 B1 uses conversion from 8 bits to 15 bits while the EFMPlus system implements conversion from 8 bits to 16 bits. Therefore, the former system is better in coding efficiency than the latter system by about 6.67%. In the modulation system of U.S. Pat. No. 6,297,753 B1, since the DSV control is of a probability-based type, the DSV has a chance of diverging when digital data assume a specified pattern.
In the EFMCC system or the Comb-Code system, two C2 maps (encoding tables) for generating two possible 17-bit channel words in response to an input byte are required to implement DSV control. Thus, the size of encoding tables is relatively large. Since the encoding of input bytes with a C1 map hardly contributes to the DSV control, the frequency of the execution of the DSV control is limited to a relatively low value.
It is a first object of this invention to provide a method of modulating digital data which is improved in the size of encoding tables and the frequency of the execution of DSV control.
It is a second object of this invention to provide an apparatus for modulating digital data which is improved in the size of encoding tables and the frequency of the execution of DSV control.
It is a third object of this invention to provide an improved method of demodulating digital data.
It is a fourth object of this invention to provide an improved apparatus for demodulating digital data.
It is a fifth object of this invention to provide an improved recording medium loaded with modulation-resultant digital data.
A first aspect of this invention provides a modulation method comprising the steps of modulating xe2x80x9cpxe2x80x9d-bit input data words into xe2x80x9cqxe2x80x9d-bit output code words by referring to a set of main encoding tables, a set of first substitution encoding tables, and a set of second substitution encoding tables, wherein xe2x80x9cpxe2x80x9d denotes a first predetermined natural number and xe2x80x9cqxe2x80x9d denotes a second predetermined natural number greater than the number xe2x80x9cpxe2x80x9d; wherein the main encoding tables contain output code words assigned to input data words, and contain state information accompanying each output code word, wherein the state information designates an encoding table among the main encoding tables and the first and second substitution encoding tables which is used next to generate an output code word immediately following the output code word accompanied with the state information in a manner such that a resultant succession of the output code words follows prescribed run length limiting rules, and wherein NRZI conversion results of output code words in first specified one of the main encoding tables which are assigned to prescribed input data words are opposite in polarity to NRZI conversion results of output code words in second specified one of the main encoding tables which are assigned to the prescribed input data words; wherein the first substitution encoding tables contain output code words assigned to input data words, and contain state information accompanying each output code word, wherein the state information designates an encoding table among the main encoding tables and the first and second substitution encoding tables which is used next to generate an output code word immediately following xe2x80x9crxe2x80x9d connection bits connected to the output code word accompanied with the state information in a manner such that a resultant succession of the output code words with the connection bits follows the prescribed run length limiting rules, and wherein xe2x80x9crxe2x80x9d denotes a third predetermined natural number; wherein the second substitution encoding tables contain output code words assigned to input data words, and contain state information accompanying each output code word, wherein the state information designates an encoding table among the main encoding tables and the first and second substitution encoding tables which is used next to generate an output code word immediately following xe2x80x9crxe2x80x9d connection bits connected to the output code word accompanied with the state information in a manner such that a resultant succession of the output code words with the connection bits follows the prescribed run length limiting rules; wherein NRZI conversion results of output code words in the first substitution encoding tables which are assigned to input data words are opposite in polarity to NRZI conversion results of output code words in the second substitution encoding tables which are assigned to said input data words, and wherein the first substitution encoding tables are equal to the second substitution encoding tables in assignment of state information to input data words; periodically selecting the main encoding tables instead of the first and second substitution encoding tables, and using the selected main encoding tables in modulating xe2x80x9cpxe2x80x9d-bit input data words into xe2x80x9cqxe2x80x9d-bit output code words; periodically selecting the first and second substitution encoding tables instead of the main encoding tables, and using the selected first and second substitution encoding tables in modulating xe2x80x9cpxe2x80x9d-bit input data words into xe2x80x9cqxe2x80x9d-bit output code words; generating a final xe2x80x9cqxe2x80x9d-bit output code word in response to a current input data word different from the prescribed input data words by referring to one of the main encoding tables when the main encoding tables are selected; generating a first candidate output code word in response to a current input data word equal to one of the prescribed input data words by referring to the first specified one of the main encoding tables when the main encoding tables are selected; generating a second candidate output code word in response to the current input data word equal to said one of the prescribed input data words by referring to the second specified one of the main encoding tables when the main encoding tables are selected; calculating a first DSV from a succession of output code words including the first candidate output code word; calculating a second DSV from a succession of output code words including the second candidate output code word; determining which of an absolute value of the first DSV and an absolute value of the second DSV is smaller; selecting one from the first and second candidate output code words which corresponds to the smaller DSV absolute value as a final xe2x80x9cqxe2x80x9d-bit output code word; generating a third candidate output code word in response to a current input data word by referring to one of the first substitution encoding tables when the first and second substitution encoding tables are selected; adding xe2x80x9crxe2x80x9d connection bits to the third candidate output code word to get a fourth candidate output code word; generating a fifth candidate output code word in response to the current input data word by referring to one of the second substitution encoding tables when the first and second substitution encoding tables are selected; adding xe2x80x9crxe2x80x9d connection bits to the fifth candidate output code word to get a sixth candidate output code word; calculating a third DSV from a succession of output code words including the fourth candidate output code word; calculating a fourth DSV from a succession of output code words including the sixth candidate output code word; determining which of an absolute value of the third DSV and an absolute value of the fourth DSV is smaller; selecting one from the fourth and sixth candidate output code words which corresponds to the smaller DSV absolute value as a final xe2x80x9cq+rxe2x80x9d-bit output code word; and connecting final xe2x80x9crxe2x80x9d-bit output code words and final xe2x80x9cq+rxe2x80x9d-bit output code words into an output-code-word sequence which follows the prescribed run length limiting rules.
A second aspect of this invention is based on the first aspect thereof, and provides a modulation wherein the numbers xe2x80x9cpxe2x80x9d, xe2x80x9cqxe2x80x9d, and xe2x80x9crxe2x80x9d are equal to 8, 15, and 2 respectively, and wherein the prescribed run length limiting rules causes a minimum run length in a result of NRZI conversion of the output-code-word sequence to be equal to 3T, and causes a maximum run length therein to be equal to 14T or less, where T denotes a channel bit period related to the final xe2x80x9crxe2x80x9d-bit output code words and the final xe2x80x9cq+rxe2x80x9d-bit output code words.
A third aspect of this invention provides a modulation apparatus comprising a set of main encoding tables, a set of first substitution encoding tables, and a set of second substitution encoding tables; means for modulating xe2x80x9cpxe2x80x9d-bit input data words into xe2x80x9cqxe2x80x9d-bit output code words by referring to the main encoding tables and the first and second substitution encoding tables, wherein xe2x80x9cpxe2x80x9d denotes a first predetermined natural number and xe2x80x9cqxe2x80x9d denotes a second predetermined natural number greater than the number xe2x80x9cpxe2x80x9d; wherein the main encoding tables contain output code words assigned to input data words, and contain state information accompanying each output code word, wherein the state information designates an encoding table among the main encoding tables and the first and second substitution encoding tables which is used next to generate an output code word immediately following the output code word accompanied with the state information in a manner such that a resultant succession of the output code words follows prescribed run length limiting rules, and wherein NRZI conversion results of output code words in first specified one of the main encoding tables which are assigned to prescribed input data words are opposite in polarity to NRZI conversion results of output code words in second specified one of the main encoding tables which are assigned to the prescribed input data words; wherein the first substitution encoding tables contain output code words assigned to input data words, and contain state information accompanying each output code word, wherein the state information designates an encoding table among the main encoding tables and the first and second substitution encoding tables which is used next to generate an output code word immediately following xe2x80x9crxe2x80x9d connection bits connected to the output code word accompanied with the state information in a manner such that a resultant succession of the output code words with the connection bits follows the prescribed run length limiting rules, and wherein xe2x80x9crxe2x80x9d denotes a third predetermined natural number; wherein the second substitution encoding tables contain output code words assigned to input data words, and contain state information accompanying each output code word, wherein the state information designates an encoding table among the main encoding tables and the first and second substitution encoding tables which is used next to generate an output code word immediately following xe2x80x9crxe2x80x9d connection bits connected to the output code word accompanied with the state information in a manner such that a resultant succession of the output code words with the connection bits follows the prescribed run length limiting rules; wherein NRZI conversion results of output code words in the first substitution encoding tables which are assigned to input data words are opposite in polarity to NRZI conversion results of output code words in the second substitution encoding tables which are assigned to said input data words, and wherein the first substitution encoding tables are equal to the second substitution encoding tables in assignment of state information to input data words; means for periodically selecting the main encoding tables instead of the first and second substitution encoding tables, and using the selected main encoding tables in modulating xe2x80x9cpxe2x80x9d-bit input data words into xe2x80x9cqxe2x80x9d-bit output code words; means for periodically selecting the first and second substitution encoding tables instead of the main encoding tables, and using the selected first and second substitution encoding tables in modulating xe2x80x9cpxe2x80x9d-bit input data words into xe2x80x9cqxe2x80x9d-bit output code words; means for generating a final xe2x80x9cqxe2x80x9d-bit output code word in response to a current input data word different from the prescribed input data words by referring to one of the main encoding tables when the main encoding tables are selected; means for generating a first candidate output code word in response to a current input data word equal to one of the prescribed input data words by referring to the first specified one of the main encoding tables when the main encoding tables are selected; means for generating a second candidate output code word in response to the current input data word equal to said one of the prescribed input data words by referring to the second specified one of the main encoding tables when the main encoding tables are selected; means for calculating a first DSV from a succession of output code words including the first candidate output code word; means for calculating a second DSV from a succession of output code words including the second candidate output code word; means for determining which of an absolute value of the first DSV and an absolute value of the second DSV is smaller; means for selecting one from the first and second candidate output code words which corresponds to the smaller DSV absolute value as a final xe2x80x9cqxe2x80x9d-bit output code word; means for generating a third candidate output code word in response to a current input data word by referring to one of the first substitution encoding tables when the first and second substitution encoding tables are selected; means for adding xe2x80x9crxe2x80x9d connection bits to the third candidate output code word to get a fourth candidate output code word; means for generating a fifth candidate output code word in response to the current input data word by referring to one of the second substitution encoding tables when the first and second substitution encoding tables are selected; means for adding xe2x80x9crxe2x80x9d connection bits to the fifth candidate output code word to get a sixth candidate output code word; means for calculating a third DSV from a succession of output code words including the fourth candidate output code word; means for calculating a fourth DSV from a succession of output code words including the sixth candidate output code word; means for determining which of an absolute value of the third DSV and an absolute value of the fourth DSV is smaller; means for selecting one from the fourth and sixth candidate output code words which corresponds to the smaller DSV absolute value as a final xe2x80x9cq+rxe2x80x9d-bit output code word; and means for connecting final xe2x80x9crxe2x80x9d-bit output code words and final xe2x80x9cq+rxe2x80x9d-bit output code words into an output-code-word sequence which follows the prescribed run length limiting rules.
A fourth aspect of this invention is based on the third aspect thereof, and provides a modulation apparatus wherein the numbers xe2x80x9cpxe2x80x9d, xe2x80x9cqxe2x80x9d, and xe2x80x9crxe2x80x9d are equal to 8, 15, and 2 respectively, and wherein the prescribed run length limiting rules causes a minimum run length in a result of NRZI conversion of the output-code-word sequence to be equal to 3T, and causes a maximum run length therein to be equal to 14T or less, where T denotes a channel bit period related to the final xe2x80x9crxe2x80x9d-bit output code words and the final xe2x80x9cq+rxe2x80x9d-bit output code words.
A fifth aspect of this invention provides a recording medium storing a signal resulting from NRZI conversion of a code-word sequence which is generated by a procedure including the steps of modulating xe2x80x9cpxe2x80x9d-bit input data words into xe2x80x9cqxe2x80x9d-bit output code words by referring to a set of main encoding tables, a set of first substitution encoding tables, and a set of second substitution encoding tables, wherein xe2x80x9cpxe2x80x9d denotes a first predetermined natural number and xe2x80x9cqxe2x80x9d denotes a second predetermined natural number greater than the number xe2x80x9cpxe2x80x9d; wherein the main encoding tables contain output code words assigned to input data words, and contain state information accompanying each output code word, wherein the state information designates an encoding table among the main encoding tables and the first and second substitution encoding tables which is used next to generate an output code word immediately following the output code word accompanied with the state information in a manner such that a resultant succession of the output code words follows prescribed run length limiting rules, and wherein NRZI conversion results of output code words in first specified one of the main encoding tables which are assigned to prescribed input data words are opposite in polarity to NRZI conversion results of output code words in second specified one of the main encoding tables which are assigned to the prescribed input data words; wherein the first substitution encoding tables contain output code words assigned to input data words, and contain state information accompanying each output code word, wherein the state information designates an encoding table among the main encoding tables and the first and second substitution encoding tables which is used next to generate an output code word immediately following xe2x80x9crxe2x80x9d connection bits connected to the output code word accompanied with the state information in a manner such that a resultant succession of the output code words with the connection bits follows the prescribed run length limiting rules, and wherein xe2x80x9crxe2x80x9d denotes a third predetermined natural number; wherein the second substitution encoding tables contain output code words assigned to input data words, and contain state information accompanying each output code word, wherein the state information designates an encoding table among the main encoding tables and the first and second substitution encoding tables which is used next to generate an output code word immediately following xe2x80x9crxe2x80x9d connection bits connected to the output code word accompanied with the state information in a manner such that a resultant succession of the output code words with the connection bits follows the prescribed run length limiting rules; wherein NRZI conversion results of output code words in the first substitution encoding tables which are assigned to input data words are opposite in polarity to NRZI conversion results of output code words in the second substitution encoding tables which are assigned to said input data words, and wherein the first substitution encoding tables are equal to the second substitution encoding tables in assignment of state information to input data words; periodically selecting the main encoding tables instead of the first and second substitution encoding tables, and using the selected main encoding tables in modulating xe2x80x9cpxe2x80x9d-bit input data words into xe2x80x9cqxe2x80x9d-bit output code words; periodically selecting the first and second substitution encoding tables instead of the main encoding tables, and using the selected first and second substitution encoding tables in modulating xe2x80x9cpxe2x80x9d-bit input data words into xe2x80x9cqxe2x80x9d-bit output code words; generating a final xe2x80x9cqxe2x80x9d-bit output code word in response to a current input data word different from the prescribed input data words by referring to one of the main encoding tables when the main encoding tables are selected; generating a first candidate output code word in response to a current input data word equal to one of the prescribed input data words by referring to the first specified one of the main encoding tables when the main encoding tables are selected; generating a second candidate output code word in response to the current input data word equal to said one of the prescribed input data words by referring to the second specified one of the main encoding tables when the main encoding tables are selected; calculating a first DSV from a succession of output code words including the first candidate output code word; calculating a second DSV from a succession of output code words including the second candidate output code word; determining which of an absolute value of the first DSV and an absolute value of the second DSV is smaller; selecting one from the first and second candidate output code words which corresponds to the smaller DSV absolute value as a final xe2x80x9cqxe2x80x9d-bit output code word; generating a third candidate output code word in response to a current input data word by referring to one of the first substitution encoding tables when the first and second substitution encoding tables are selected; adding xe2x80x9crxe2x80x9d connection bits to the third candidate output code word to get a fourth candidate output code word; generating a fifth candidate output code word in response to the current input data word by referring to one of the second substitution encoding tables when the first and second substitution encoding tables are selected; adding xe2x80x9crxe2x80x9d connection bits to the fifth candidate output code word to get a sixth candidate output code word; calculating a third DSV from a succession of output code words including the fourth candidate output code word; calculating a fourth DSV from a succession of output code words including the sixth candidate output code word; determining which of an absolute value of the third DSV and an absolute value of the fourth DSV is smaller; selecting one from the fourth and sixth candidate output code words which corresponds to the smaller DSV absolute value as a final xe2x80x9cq+rxe2x80x9d-bit output code word; and connecting final xe2x80x9crxe2x80x9d-bit output code words and final xe2x80x9cq+rxe2x80x9d-bit output code words into an output-code-word sequence which follows the prescribed run length limiting rules; wherein the numbers xe2x80x9cpxe2x80x9d, xe2x80x9cqxe2x80x9d, and xe2x80x9crxe2x80x9d are equal to 8, 15, and 2 respectively, and wherein the prescribed run length limiting rules causes a minimum run length in a result of NRZI conversion of the output-code-word sequence to be equal to 3T, and causes a maximum run length therein to be equal to 14T or less, where T denotes a channel bit period related to the final xe2x80x9crxe2x80x9d-bit output code words and the final xe2x80x9cq+rxe2x80x9d-bit output code words.
A sixth aspect of this invention provides a method of demodulating a code-word sequence, which is generated by the modulation method of the first aspect of this invention, into a data-word sequence. The demodulating method comprises the steps of detecting whether a current input code word results from modulation using one of the main encoding tables or modulation using one of the first and second substitution encoding tables; when it is detected that the current input code word results from modulation using one of the main encoding tables, generating first encoding-state information from the current input code word and a next input code word, the first encoding-state information representing which of the main encoding tables has been used in generating the next input code word; demodulating the current input code word into an original data word by referring to a main decoding table in response to the current input code word and the first encoding-state information; when it is detected that the current input code word results from modulation using one of the first and second substitution encoding tables, selecting one from first and second substitution decoding tables in response to the current input code word; when it is detected that the current input code word results from modulation using one of the first and second substitution encoding tables, deleting connection bits from the current input code word to get a normal-length current input code word; generating second encoding-state information from the normal-length current input code word and a next input code word, the second encoding-state information representing which of the first and second substitution encoding tables has been used in generating the next input code word; and demodulating the normal-length current input code word into an original data word by referring to the selected substitution decoding table in response to the normal-length current input code word and the second encoding-state information.
A seventh aspect of this invention provides an apparatus for demodulating a code-word sequence, which is generated by the apparatus of the third aspect of this invention, into a data-word sequence. The demodulating apparatus comprises means for detecting whether a current input code word results from modulation using one of the main encoding tables or modulation using one of the first and second substitution encoding tables; means for, when it is detected that the current input code word results from modulation using one of the main encoding tables, generating first encoding-state information from the current input code word and a next input code word, the first encoding-state information representing which of the main encoding tables has been used in generating the next input code word; means for demodulating the current input code word into an original data word by referring to a main decoding table in response to the current input code word and the first encoding-state information; means for, when it is detected that the current input code word results from modulation using one of the first and second substitution encoding tables, selecting one from first and second substitution decoding tables in response to the current input code word; means for, when it is detected that the current input code word results from modulation using one of the first and second substitution encoding tables, deleting connection bits from the current input code word to get a normal-length current input code word; means for generating second encoding-state information from the normal-length current input code word and a next input code word, the second encoding-state information representing which of the first and second substitution encoding tables has been used in generating the next input code word; and means for demodulating the normal-length current input code word into an original data word by referring to the selected substitution decoding table in response to the normal-length current input code word and the second encoding-state information.
An eighth aspect of this invention provides a modulation apparatus comprising main encoding tables for conversion from xe2x80x9cpxe2x80x9d-bit input data words into xe2x80x9cqxe2x80x9d-bit output code words accompanied with next-table selection numbers respectively, the main encoding tables having different ID numbers respectively, wherein xe2x80x9cpxe2x80x9d denotes a first predetermined natural number and xe2x80x9cqxe2x80x9d denotes a second predetermined natural number greater than the number xe2x80x9cpxe2x80x9d; first substitution encoding tables for conversion from xe2x80x9cpxe2x80x9d-bit input data words into xe2x80x9cqxe2x80x9d-bit output code words accompanied with next-table selection numbers respectively, the first substitution encoding tables having different ID numbers respectively; second substitution encoding tables for conversion from xe2x80x9cpxe2x80x9d-bit input data words into xe2x80x9cqxe2x80x9d-bit output code words accompanied with next-table selection numbers respectively, the second substitution encoding tables having different ID numbers respectively; means for generating a first candidate output code word in response to a first input data word by referring to one of the first substitution encoding tables which has an ID number equal to a next-table selection number accompanying an output code word for an input data word immediately preceding the first input data word; means for adding xe2x80x9crxe2x80x9d connection bits to the first candidate output code word to get a second candidate output code word without referring to the first substitution encoding tables, wherein xe2x80x9crxe2x80x9d denotes a third predetermined natural number; means for generating a third candidate output code word in response to the first input data word by referring to one of the second substitution encoding tables which has an ID number equal to the next-table selection number accompanying the output code word for the input data word immediately preceding the first input data word; means for adding xe2x80x9crxe2x80x9d connection bits to the third candidate output code word to get a fourth candidate output code word without referring to the second substitution encoding tables; means for generating a final xe2x80x9cqxe2x80x9d-bit output code word in response to a second input data word by referring to one of the main encoding tables which has an ID number equal to a next-table selection number accompanying one of the first and third candidate output code words; means for generating a first succession of output code words including the second candidate output code word and the final xe2x80x9cqxe2x80x9d-bit output code word; means for generating a second succession of output code words including the fourth candidate output code word and the final xe2x80x9cqxe2x80x9d-bit output code word; means for calculating a first DSV from the first succession of output code words; means for calculating a second DSV from the second succession of output code words; means for comparing the first DSV and the second DSV with each other to get a DSV comparison result; means for selecting one from the second and fourth candidate output code words in response to the DSV comparison result as a final xe2x80x9cq+rxe2x80x9d-bit output code word; and means for connecting the final xe2x80x9crxe2x80x9d-bit output code word and the final xe2x80x9cq+rxe2x80x9d-bit output code word into a portion of an output-code-word sequence which follows prescribed run length limiting rules.